﻿CREATE PROCEDURE [dbo].[Articulos_DevolverPorCodigo]

@Codigo VARCHAR(20),
@IncluirImagen BIT

AS

IF(@IncluirImagen = 1)
BEGIN
	SELECT a.IdArticulo, 
		a.IdTipoArticulo, 
		a.IdSubRubroArticulo, 
		a.IdMarca, 
		a.IdDescuentoRecargoCantidad, 
		a.IdTipoComisionArticulo, 
		a.IdTipoImpuestoArticulo, 
		a.IdTipoCostoArticulo, 
		a.IdDescuentoRecargoFechaHora, 
		a.Codigo, 
		a.Nombre, 
		a.ExistenciaMinima, 
		a.ExistenciaMaxima, 
		a.Costo, 
		a.Comision, 
		a.ComisionMaxima, 
		a.Iva, 
		a.Impuesto, 
		a.Observaciones, 
		a.Imagen, 
		a.EstaEliminado,
		a.CodigoBarras
		FROM Articulos a
		WHERE a.Codigo = @Codigo
END
ELSE
BEGIN
	SELECT a.IdArticulo, 
		a.IdTipoArticulo, 
		a.IdSubRubroArticulo, 
		a.IdMarca, 
		a.IdDescuentoRecargoCantidad, 
		a.IdTipoComisionArticulo, 
		a.IdTipoImpuestoArticulo, 
		a.IdTipoCostoArticulo, 
		a.IdDescuentoRecargoFechaHora, 
		a.Codigo, 
		a.Nombre, 
		a.ExistenciaMinima, 
		a.ExistenciaMaxima, 
		a.Costo, 
		a.Comision, 
		a.ComisionMaxima, 
		a.Iva, 
		a.Impuesto, 
		a.Observaciones, 
		CASE WHEN a.Imagen IS NULL
			THEN NULL
			ELSE CONVERT(IMAGE, 0x) END AS Imagen,
		a.EstaEliminado,
		a.CodigoBarras
		FROM Articulos a
		WHERE a.Codigo = @Codigo
END

SELECT alpv.IdArticulo,
	alpv.IdListaPrecioVenta,
	alpv.Valor
	FROM ArticulosListasPreciosVentas alpv
		INNER JOIN Articulos a
			ON alpv.IdArticulo = a.IdArticulo
	WHERE a.Codigo = @Codigo

SELECT alpc.IdArticulo,
	alpc.IdListaPrecioCompra,
	alpc.Valor
	FROM ArticulosListasPreciosCompras alpc
		INNER JOIN Articulos a
			ON alpc.IdArticulo = a.IdArticulo
	WHERE a.Codigo = @Codigo

SELECT acpa.IdArticulo,
	acpa.IdCampoPersonalizadoArticulo,
	acpa.Valor
	FROM ArticulosCamposPersonalizadosArticulos acpa
		INNER JOIN Articulos a
			ON acpa.IdArticulo = a.IdArticulo
	WHERE a.Codigo = @Codigo

SELECT av.IdArticuloVariante, 
	av.IdArticulo, 
	av.Nombre,
	av.EstaEliminado
	FROM ArticulosVariantes av
		INNER JOIN Articulos a
			ON av.IdArticulo = a.IdArticulo
	WHERE a.Codigo = @Codigo

SELECT avd.IdArticuloVariante,
	avd.IdArticuloVarianteDetalle,
	avd.Valor
	FROM ArticulosVariantesDetalles avd
		INNER JOIN ArticulosVariantes av
			ON avd.IdArticuloVariante = av.IdArticuloVariante
		INNER JOIN Articulos a
			ON av.IdArticulo = a.IdArticulo
	WHERE a.Codigo = @Codigo

SELECT ae.IdArticuloExistencia, 
	ae.IdArticulo, 
	ae.IdUbicacion, 
	ae.Cantidad,
	ae.EstaEliminado
	FROM ArticulosExistencias ae
		INNER JOIN Articulos a
			ON ae.IdArticulo = a.IdArticulo
	WHERE a.Codigo = @Codigo

SELECT aed.IdArticuloExistenciaDetalle,
	aed.IdArticuloExistencia,
	aed.IdArticuloVarianteDetalle
	FROM ArticulosExistenciasDetalles aed
		INNER JOIN ArticulosExistencias ae
			ON ae.IdArticuloExistencia = aed.IdArticuloExistencia
		INNER JOIN Articulos a
			ON ae.IdArticulo = a.IdArticulo
	WHERE a.Codigo = @Codigo

SELECT ap.IdArticulo,
	ap.IdProveedor
	FROM ArticulosProveedores ap
		INNER JOIN Articulos a
			ON ap.IdArticulo = a.IdArticulo
	WHERE a.Codigo = @Codigo

SELECT ac.IdArticuloCompuesto,
	ac.IdArticulo,
	ac.IdArticuloDetalle,
	ac.Cantidad
	FROM ArticulosCompuestos ac
		INNER JOIN Articulos a
			ON ac.IdArticulo = a.IdArticulo
	WHERE a.Codigo = @Codigo